﻿using System.ComponentModel;

namespace SE.PO.CInterface.Web.Models;

public class SelectEnum
{
    public List<SelectEnumItem> SelectEnumItems = new();
    private Enum _eEnum;

    public SelectEnum(Enum eEnum)
    {
        _eEnum = eEnum;
        InitSelectEnumItems(eEnum);
    }

    public void InitSelectEnumItems(Enum obj)
    {
        var type = obj.GetType();
        string[] names = Enum.GetNames(type);
        foreach (var name in names)
        {
            var field = type.GetField(name);
            var val = (int) field.GetValue(null);
            var atts = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
            if (atts != null && atts.Length > 0)
            {
                var att = ((DescriptionAttribute[]) atts)[0];
                var des = att.Description;
                SelectEnumItems.Add(new SelectEnumItem(des, val));
            }
        }
    }
}